package com.micro.ai.commons.exception;

import com.micro.ai.commons.constant.ErrorCodeEnum;

/**
 * 系统异常
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public class SystemException extends GlobalException {

    private static final long serialVersionUID = 1L;

    /**
     * 构造函数
     */
    public SystemException(String message) {
        super(ErrorCodeEnum.B0001.getCode(), message);
    }

    /**
     * 构造函数
     */
    public SystemException(String code, String message) {
        super(code, message);
    }

    /**
     * 构造函数
     */
    public SystemException(String code, String message, Object data) {
        super(code, message, data);
    }

    /**
     * 构造函数
     */
    public SystemException(String code, String message, Throwable cause) {
        super(code, message, cause);
    }

    /**
     * 构造函数
     */
    public SystemException(String message, Throwable cause) {
        super(ErrorCodeEnum.B0001.getCode(), message, cause);
    }

    /**
     * 构造函数 - 使用错误码枚举
     */
    public SystemException(ErrorCodeEnum errorCode) {
        super(errorCode);
    }

    /**
     * 构造函数 - 使用错误码枚举带数据
     */
    public SystemException(ErrorCodeEnum errorCode, Object data) {
        super(errorCode, data);
    }

    /**
     * 构造函数 - 使用错误码枚举带原因
     */
    public SystemException(ErrorCodeEnum errorCode, Throwable cause) {
        super(errorCode, cause);
    }

    /**
     * 构造函数 - 使用错误码枚举带数据和原因
     */
    public SystemException(ErrorCodeEnum errorCode, Object data, Throwable cause) {
        super(errorCode, data, cause);
    }
}
